#ifndef MAPA_H
#define MAPA_H

#include <fstream>
#include <iostream>
using namespace std;

#include "../definiciones_globales.h"
#include "Tileset.h"

typedef unsigned int Uint;

class Mapa
{
	public:
		void Cargar(const char* filename);
		SDL_Surface* VistaDeTile(const int i, const int j);
		bool EsCaminable(const Punto& posicion) const;
		const Dimensiones_t& Dimensiones() const;
		void Ocupar(const Punto& posicion);
		bool Desocupar(const Punto& posicion);
		bool EstaOcupado(const Punto& posicion);
		bool PuedoOcupar(const Punto& posicion);
	private:
		Dimensiones_t dimensiones;
		Uint** mapa;
		bool** ocupado;
		Tileset tileset;
		
		bool EsValida(const Punto& posicion) const;
		void Validar(const Punto& posicion) const;
};

#endif
